package BusinessDelegate;

import java.util.List;
import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import Entities.RodamientoBean;
import EntitiesDTO.CotizacionDTO;
import EntitiesDTO.ItemSolicitudCotizacionDTO;
import EntitiesDTO.RodamientoDTO;
import EntitiesDTO.SolicitudCompraDTO;
import Facade.SessionFacade;

public class FacadeBusinessDelegate implements SessionFacade {
	SessionFacade sessionFacade;
	private InitialContext ic;
	private static FacadeBusinessDelegate INSTANCE;

	public FacadeBusinessDelegate() throws NamingException {
		Properties props = new Properties();
		props.put(InitialContext.INITIAL_CONTEXT_FACTORY,
				"org.jnp.interfaces.NamingContextFactory");
		props.put(InitialContext.PROVIDER_URL, "jnp://localhost:1099");
		ic = new InitialContext(props);
		System.out.println(sessionFacade);
		sessionFacade = (SessionFacade) ic
				.lookup("TPOClienteEAR/SessionFacadeBean/remote");
		System.out.println(sessionFacade);
	}

	public static FacadeBusinessDelegate getInstance() throws NamingException {
		if (INSTANCE == null) {
			INSTANCE = new FacadeBusinessDelegate();
		}
		return INSTANCE;
	}

	@Override
	public List<RodamientoDTO> getAllRodamientos() {
		return sessionFacade.getAllRodamientos();
	}

	@Override
	public RodamientoDTO getRodamientobyID(int id) {
		return sessionFacade.getRodamientobyID(id);
	}

	@Override
	public RodamientoDTO getRodamientobyCodigo(String codigo) {
		return sessionFacade.getRodamientobyCodigo(codigo);
	}

	@Override
	public RodamientoBean getRodamientoBeanbyCodigo(String codigo) {
		return sessionFacade.getRodamientoBeanbyCodigo(codigo);
	}

	@Override
	public void saveCotizacion(CotizacionDTO cotiz) {
		sessionFacade.saveCotizacion(cotiz);

	}

	@Override
	public List<ItemSolicitudCotizacionDTO> getRodamientosItems() {
		return sessionFacade.getRodamientosItems();
	}

	@Override
	public void setNuevaSolicitudCompra(SolicitudCompraDTO sol) {
		sessionFacade.setNuevaSolicitudCompra(sol);
	}

}
